/**
 * Ajax请求类
 * 该类主要用于浏览器端与服务器端的数据通讯和交互
 * 共有五个参数loadUrl/loadData/callback/ajaxMethod/ajaxData
 * 其中前三个必须，后两个可选
 * @params: loadUrl string 请求的服务器地址
 * @params: loadData string 请求参数，当ajaxMethod='POST'时，此参数必须，为"GET"时，可以直接''
 * @params: callback string 数据请求完成后客户端的回调函数，通常用于处理服务器端返回的数据
 * @params: ajaxMethod string 客户端向服务器端提交数据的方式 可选值为POST和GET,默认值为POST
 * @params: ajaxData string 服务器端返回的数据格式，可选值为html/json/jsonp/text,默认值为html
 * 使用方法： var demo = new Ajax('a.php','a=1',processData);
 *            demo.load();
 */

var Ajax = function() {

    var obj = this;
    obj.loadUrl = arguments[0];
    if(arguments[1]){
        obj.loadData = 't='+(new Date()).getTime()+'&'+arguments[1];
    } else {
        obj.loadData = '';
    }
    obj.callback = arguments[2];
    obj.ajaxMethod;
    obj.ajaxData;
    obj.args = arguments.length;
    if(obj.args <=3){
        obj.ajaxMethod = 'POST';
        obj.ajaxData = 'html';
    } else if(obj.args == 4) {
        obj.ajaxMethod = arguments[3];
        obj.ajaxData = 'html';
    } else if(args == 5){
        obj.ajaxMethod = arguments[3];
        obj.ajaxData = arguments[4];
    }

    obj.load = function(){
        //alert(this.callback);return;
        if(obj.ajaxMethod == 'POST'){
            $.ajax({
                type: 'POST',
                url: obj.loadUrl,
                data: obj.loadData,
                dataType: obj.ajaxData,
                error: function(err) {
                    obj.showError(err);
                },
                success: function(msg){
                    obj.callback(msg);
                }
            });
        } else if(obj.ajaxMethod == 'GET'){
            $.get(obj.loadUrl, obj.loadData,function(msg){obj.callback(msg);},obj.ajaxData);
        }
    }

    obj.showError = function(err){
        alert(err);
    }

    //obj.load();
}